﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Newtonsoft.Json.Linq;
using System.Data;

namespace GIO.dominio
{
    public class incidente
    {

        /**
        * 
        */
        private int id;
        private String titulo;
        private DateTime fechaInicio;
        private int idCliente;
        private String detalle;
        private int idPrioridad;
        private int idClasificacionIncidente;
        private int idTipoIncidente;
        private int idTipoIncidenteExtra;
        private int idEstado;
        private DateTime fechaAsignado;
        private int idUsuarioSol;
        private int idMotivoRechazo;
        private DateTime fechaFin;

        public incidente()
        {
        }

        public incidente(int id, String titulo, DateTime fechaInicio, int idCliente,
                String detalle, Byte idClasificacionIncidente, int idTipoIncidente,
                Byte idEstado)
        {
            this.id = id;
            this.titulo = titulo;
            this.fechaInicio = fechaInicio;
            this.idCliente = idCliente;
            this.detalle = detalle;
            this.idClasificacionIncidente = idClasificacionIncidente;
            this.idTipoIncidente = idTipoIncidente;
            this.idEstado = idEstado;
        }

        public incidente(int id, String titulo, DateTime fechaInicio, int idCliente,
        String detalle, int idPrioridad, int idClasificacionIncidente, int idTipoIncidente, int idTipoIncidenteExtra,
        Byte idEstado, DateTime fechaAsignado, int idUsuarioSol, int idMotivoRechazo, DateTime fechaFin)
        {
            this.id = id;
            this.titulo = titulo;
            this.fechaInicio = fechaInicio;
            this.idCliente = idCliente;
            this.detalle = detalle;
            this.idPrioridad = idPrioridad;
            this.idClasificacionIncidente = idClasificacionIncidente;
            this.idTipoIncidente = idTipoIncidente;
            this.idTipoIncidenteExtra = idTipoIncidenteExtra;
            this.idEstado = idEstado;
            this.fechaAsignado = fechaAsignado;
            this.idUsuarioSol = idUsuarioSol;
            this.idMotivoRechazo = idMotivoRechazo;
            this.fechaFin = fechaFin;
        }


        public int getId()
        {
            return id;
        }

        public void setId(int id)
        {
            this.id = id;
        }

        public String getTitulo()
        {
            return titulo;
        }

        public void setTitulo(String titulo)
        {
            this.titulo = titulo;
        }

        public DateTime getFechaInicio()
        {
            return fechaInicio;
        }

        public void setFechaInicio(DateTime fechaInicio)
        {
            this.fechaInicio = fechaInicio;
        }

        public int getIdCliente()
        {
            return idCliente;
        }

        public void setIdCliente(int idCliente)
        {
            this.idCliente = idCliente;
        }

        public String getDetalle()
        {
            return detalle;
        }

        public void setDetalle(String detalle)
        {
            this.detalle = detalle;
        }

        public int getIdPrioridad()
        {
            return idPrioridad;
        }

        public void setIdPrioridad(int idPrioridad)
        {
            this.idPrioridad = idPrioridad;
        }

        public int getIdClasificacionIncidente()
        {
            return idClasificacionIncidente;
        }

        public void setIdClasificacionIncidente(int idClasificacionIncidente)
        {
            this.idClasificacionIncidente = idClasificacionIncidente;
        }

        public int getIdTipoIncidente()
        {
            return idTipoIncidente;
        }

        public void setIdTipoIncidente(int idTipoIncidente)
        {
            this.idTipoIncidente = idTipoIncidente;
        }

        public int getIdTipoIncidenteExtra()
        {
            return idTipoIncidenteExtra;
        }

        public void setIdTipoIncidenteExtra(int idTipoIncidenteExtra)
        {
            this.idTipoIncidenteExtra = idTipoIncidenteExtra;
        }

        public int getIdEstado()
        {
            return idEstado;
        }

        public void setIdEstado(int idEstado)
        {
            this.idEstado = idEstado;
        }

        public DateTime getFechaAsignado()
        {
            return fechaAsignado;
        }

        public void setFechaAsignado(DateTime fechaAsignado)
        {
            this.fechaAsignado = fechaAsignado;
        }

        public int getIdUsuarioSol()
        {
            return idUsuarioSol;
        }

        public void setIdUsuarioSol(int idUsuarioSol)
        {
            this.idUsuarioSol = idUsuarioSol;
        }

        public int getIdMotivoRechazo()
        {
            return idMotivoRechazo;
        }

        public void setIdMotivoRechazo(int idMotivoRechazo)
        {
            this.idMotivoRechazo = idMotivoRechazo;
        }

        public DateTime getFechaFin()
        {
            return fechaFin;
        }

        public void setFechaFin(DateTime fechaFin)
        {
            this.fechaFin = fechaFin;
        }



        public DataTable llenarDesdeJSon(JObject jo, DataTable t)
        {

            DateTime fecIni = new DateTime(1970, 1, 1, 0, 0, 0);
            DateTime fecAsi = new DateTime(1970, 1, 1, 0, 0, 0);
            DateTime fecFin = new DateTime(1970, 1, 1, 0, 0, 0);
            //Creamos una fila en el objecto mitabla y llenamos la fila con los datos 	  	 
            DataRow fila = t.NewRow();
            fila[0] = Convert.ToInt32(jo["id"]);
            fila[1] = Convert.ToString(jo["titulo"]);
            if (jo["fechaInicio"].ToString() != "")
            {
                fecIni = new DateTime(1970, 1, 1, 0, 0, 0).AddSeconds(Convert.ToDouble(jo["fechaInicio"]) / 1000);
                this.setFechaInicio(fecIni);
            }
            else
            {
                this.setFechaInicio(fecIni);
            }
            fila[2] = fecIni;
            fila[3] = Convert.ToInt32(jo["idCliente"]);
            fila[4] = Convert.ToString(jo["detalle"]);
            fila[5] = Convert.ToInt32(jo["idPrioridad"]);
            fila[6] = Convert.ToInt32(jo["idClasificacionIncidente"]);
            fila[7] = Convert.ToInt32(jo["idTipoIncidente"]);
            fila[8] = Convert.ToInt32(jo["idTipoIncidenteExtra"]);
            fila[9] = Convert.ToInt32(jo["idEstado"]);
            if (jo["fechaAsignado"].ToString() != "")
            {
                fecAsi = new DateTime(1970, 1, 1, 0, 0, 0).AddSeconds(Convert.ToDouble(jo["fechaAsignado"]) / 1000);
                this.setFechaAsignado(fecAsi);
            }
            else
            {
                this.setFechaInicio(fecAsi);
            }
            fila[10] = fecAsi;
            fila[11] = Convert.ToInt32(jo["idUsuarioSol"]);
            fila[12] = Convert.ToInt32(jo["idMotivoRechazo"]);
            if (jo["fechaFin"].ToString() != "")
            {
                fecFin = new DateTime(1970, 1, 1, 0, 0, 0).AddSeconds(Convert.ToDouble(jo["fechaFin"]) / 1000);
                this.setFechaFin(fecFin);
            }
            else
            {
                this.setFechaInicio(fecFin);
            }
            fila[13] = fecFin;
            t.Rows.Add(fila);
            return t;
            /*

            this.setId(Convert.ToInt32(jo["id"]));
            this.setTitulo(Convert.ToString(jo["titulo"]));
            

            this.setIdCliente(Convert.ToInt32(jo["idCliente"]));
            this.setDetalle(Convert.ToString(jo["detalle"]));
            this.setIdPrioridad(Convert.ToInt32(jo["idPrioridad"]));
            this.setIdClasificacionIncidente(Convert.ToInt32(jo["idClasificacionIncidente"]));
            this.setIdTipoIncidente(Convert.ToInt32(jo["idTipoIncidente"]));
            this.setIdTipoIncidenteExtra(Convert.ToInt32(jo["idTipoIncidenteExtra"]));
            this.setIdEstado(Convert.ToInt32(jo["idEstado"]));



            this.setIdUsuarioSol(Convert.ToInt32(jo["idUsuarioSol"]));
            this.setIdMotivoRechazo(Convert.ToInt32(jo["idMotivoRechazo"]));


            */
          

        }
    }
}
